# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

EXPORTS += [
    'BackstagePass.h',
    'qsObjectHelper.h',
    'XPCJSMemoryReporter.h',
    'xpcObjectHelper.h',
    'xpcpublic.h',
]

UNIFIED_SOURCES += [
    'ExportHelpers.cpp',
    'nsXPConnect.cpp',
    'Sandbox.cpp',
    'XPCCallContext.cpp',
    'XPCConvert.cpp',
    'XPCDebug.cpp',
    'XPCException.cpp',
    'XPCJSContext.cpp',
    'XPCJSID.cpp',
    'XPCJSWeakReference.cpp',
    'XPCLocale.cpp',
    'XPCLog.cpp',
    'XPCMaps.cpp',
    'XPCModule.cpp',
    'XPCRuntimeService.cpp',
    'XPCShellImpl.cpp',
    'XPCString.cpp',
    'XPCThrower.cpp',
    'XPCVariant.cpp',
    'XPCWrappedJS.cpp',
    'XPCWrappedJSClass.cpp',
    'XPCWrappedNative.cpp',
    'XPCWrappedNativeInfo.cpp',
    'XPCWrappedNativeJSOps.cpp',
    'XPCWrappedNativeProto.cpp',
    'XPCWrappedNativeScope.cpp',
    'XPCWrapper.cpp',
]

# XPCComponents.cpp cannot be built in unified mode because it uses plarena.h.
SOURCES += [
    'XPCComponents.cpp',
]

include('/ipc/chromium/chromium-config.mozbuild')

FINAL_LIBRARY = 'xul'

LOCAL_INCLUDES += [
    '../loader',
    '../wrappers',
    '/caps',
    '/dom/base',
    '/dom/bindings',
    '/dom/html',
    '/dom/svg',
    '/dom/workers',
    '/layout/base',
    '/layout/style',
    '/xpcom/reflect/xptinfo',
]

if CONFIG['GNU_CXX']:
    CXXFLAGS += ['-Wno-shadow']
